Context server for associating information based on context

ABSTRACT

A system, method, and computer readable medium are provided for associating information (including information and services) based upon context. In one example, an apparatus includes interface logic for receiving, during a session (e.g., during a media object capture, upload session, data transfer session, or the like), context information from a user device, and user-generated information associated with the context information. The context information may relate to time, date, location, ambient conditions, biometric (e.g., relating to the user of the device), device/user identification, or combinations thereof. The apparatus further including association logic for associating service information, different from the context information, with the user-generated information based on the context information. The associated service information may include empirical information such as a map of a particular location, the map including points of interest.

BACKGROUND

1. Field

The present invention generally relates to associating information orservices based upon the context of a user or user device, and in oneexample, to providing associated information or services based uponcontext to one or more users.

2. Related Art

Mobile devices, such as mobile phones including digital cameras, arebecoming ever more prevalent. Such mobile devices are increasinglycapable of determining the context of the environment in which they areused. For example, in addition to time and date information, locationservices may be used to supply spatial information of the device, forexample, GSM network cell ID, EOTD-based location, GPS, and the like.Additionally, such spatial information may be associated with digitalphotographs captured by a mobile device including a digital camera,thereby providing spatial context for digital photographs.

Some context information, typically time and date information, may beautomatically generated by a device (referred to generally asdevice-generated data) and associated with a digital photograph. Forexample, a mobile phone having a digital camera may automaticallygenerate time and date metadata associated with the capture of a digitalphotograph. Additionally, semantic information may be entered by a userat the time of capture (or later) and associated with the digitalphotograph. Such information is often referred to as user-generatedmetadata, or tags, and may include various user inputted information.

It is desired to associate information and/or service(s) based onreceived device-generated and/or user-generated context information,which may be associated with a media object such as a digitalphotograph. Further, it is desired to provide such associated service(s)and/or information to one or more users or user devices.

BRIEF SUMMARY

According to one aspect of the present invention a system forassociating information (including information and services) based uponcontext is provided. In one example, an apparatus includes interfacelogic for receiving, during a session (e.g., during a media objectcapture, upload session, or data transfer session), context informationfrom a user device, and user-generated subjective characterizationinformation associated with the context information. The contextinformation may relate to time, date, location, ambient conditions,biometric (e.g., relating to the user of the device), device/useridentification, or combinations thereof. The apparatus further includingassociation logic for associating service information, different fromthe context information, with the user-generated subjectivecharacterization information based on the context information. Theassociated service information may include empirical information such asa map of a particular location.

In some examples, the apparatus further comprises service logic forproviding the associated service information to at least one user basedon the association of service information with the user-generatedsubjective characterization information or the context. The at least oneuser may include a user other than a first user who created theuser-generated subjective characterization information. The serviceinformation may be based on a plurality of inputs (e.g., context oruser-generated subjective characterization information) from multipleuser devices. The association logic may associate the serviceinformation with user-generated subjective characterization informationand context information from a plurality of user devices.

The context information from the user device may originate at the userdevice or at a device other than the user device. The serviceinformation may relate to various information or services, such as ascavenger hunt game (or reverse scavenger hunt, e.g., where a user isprovided with an image and requested to find a location associated withthe image), a travel log (e.g., including a map overlaid with at leastone media object associated with the user), and a travel guide forproviding a suggestion or tour to a user device.

The service information may further relate to an advertisement, wherethe advertisement is based on context information. In one example, theservice information relates to a sponsored search, where the apparatusincludes logic for initiating a transfer of an advertisement to a userdevice based on the context information and a user search query receivedfrom the user device.

According to another aspect and example, a method for associatinginformation based upon context is provided. In one example, the methodincludes receiving context information from a user device, anduser-generated subjective characterization information associated withthe context information, wherein the context information anduser-generated subjective characterization information are receivedduring a common session (e.g., a media object capture session). Themethod further includes associating service information, different fromthe context information, with the user-generated subjectivecharacterization information based on the context information. Theassociated service information may include empirical information such asa map of a particular location. The context information may relate totime, date, location, ambient conditions, biometric (e.g., relating tothe user of the device), device/user identifications, or combinationsthereof.

According to another aspect and example, a computer-readable medium orproduct encoded with computer program instructions for associatinginformation based upon context is provided. In one example, the processincludes receiving context information from a user device, anduser-generated subjective characterization information associated withthe context information, wherein the context information anduser-generated subjective characterization information are receivedduring a common session (e.g., a media object capture session). Theprocess further including associating service information, differentfrom the context information, with the user-generated subjectivecharacterization information based the context information. Theassociated service information may include empirical information such asa map of a particular location. The context information may relate totime, date, location, biometric (e.g., relating to the user of thedevice), or combinations thereof.

According to another aspect of the present invention a system forassociating information (including information or services) based uponcontext is provided. In one example, an apparatus operates to associateinformation with a media object based upon context. The apparatusincludes interface logic for receiving, during a session (e.g.,associated with the media object capture, an upload session, datatransfer session, or the like), a media object from a user device,context information from the user device (e.g., where the contextinformation is not user-generated) and user-generated information fromthe user device (e.g., where the user-generated information is relatedto the media object). The apparatus further comprising association logicfor associating information, different from the user-generatedinformation, with the media object based on the context information andthe user-generated information.

In one example, the associated information is of a type different thanrelated device-generated metadata, e.g., different than device generatedformatting data, and in another example different than the media object.In one example, the context information does not include only formattingdata (e.g., EXIF data or the like) for the media object.

The apparatus may further include service logic for providing theassociated information to at least one user based on the association ofinformation with the media object. The at least one user may include afirst user associated with the media object or a second user, differentthan the first user. The apparatus may further include permissions logicfor enabling a first user to grant a second user access. In one example,the associated information is based on a plurality of inputs frommultiple user devices. The inputs may comprise user-generated and/ordevice-generated context information.

The service information may further relate to a map, travel guide, tour,context-based message, advertisement, sponsored search advertisement,game such as a scavenger hunt, or combinations thereof.

According to another example, a method for associating information witha media object based upon context is provided. In one example, themethod includes receiving a media object, context information from theuser device (e.g., where the context information is not user-generated),and user-generated information from the user device (e.g., where theuser-generated information is related to the media object). The methodfurther associating information with the media object based on thecontext information and the user-generated information.

According to another aspect and example, a computer-readable medium orproduct encoded with computer program instructions for associatinginformation based upon context is provided. In one example, the processincludes receiving a media object, context information from the userdevice (wherein the context information is not user-generated), anduser-generated information from the user device (wherein theuser-generated information is related to the media object). The processfurther associating information with the media object based on thecontext information and the user-generated information.

The various aspects and examples of the present invention are betterunderstood upon consideration of the detailed description below inconjunction with the accompanying drawings and claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary context server and environment in whichsome aspects and examples described may by used.

FIG. 2 illustrates an exemplary context server and associated componentsaccording to another example.

FIGS. 3A and 3B illustrate exemplary information flows between a contextserver and a user device according to one example.

FIG. 4 illustrates an exemplary flow of information between a contextserver and a user device according to one example.

FIG. 5 illustrates an exemplary flow of information between a contextserver and a user device according to one example.

FIG. 6 illustrates an exemplary computing system that may be employed toimplement processing functionality for various aspects of the invention.

DETAILED DESCRIPTION

The following description is presented to enable a person of ordinaryskill in the art to make and use the various aspects and examples of theinvention. Descriptions of specific devices, techniques, andapplications are provided only as examples. Various modifications to theexamples described herein will be readily apparent to those of ordinaryskill in the art, and the general principles defined herein may beapplied to other examples and applications without departing from thespirit and scope of the invention. Thus, the present invention is notintended to be limited to the examples described herein and shown, butis to be accorded the scope consistent with the claims.

In some examples described herein, a context server apparatus isprovided for facilitating the association of information based uponcontext of a user or user device. For example, the context server mayinclude interface logic for receiving context information from orassociated with a user device, as well as other user-generatedinformation or objects such as media objects, user-generated informationor metadata, subjective characterization information, and the like. Thecontext server may include logic for associating information or serviceswith one or more of the user-generated information, media object, orcontext information, and transmitting (or at least initiating thetransfer of) the associated information or service to a server system orone or more users.

FIG. 1 illustrates an exemplary environment in which some examples of acontext server apparatus and associated aspects described may be used.In particular, FIG. 1 illustrates a client-server system in which one ormore clients 110 may communicate with a context server 100 via network112. Context server 100 generally includes interface logic 102 forinterfacing with network 112, and association logic 108 for associatinginformation or services to one or more clients 110 based, at least inpart, on received context information from one or more clients 110.Context server 100 may further include a database 106 for storinginformation including, for example, context information, media objects,and information or services for associating with data based on thecontext. As will be described, database 106 may be stored locally withcontext server 100 or remotely to context server 100.

Clients 110 and context server 100 may include suitable communicationinterfaces to communicate in part or in whole via network 112. Network112 may include a Wide Area Network (WAN) such as the Internet, awireless network, such as a wireless gateway, e.g., a cellular,satellite, or other wireless network, a non-wireless network such as acable or fiber optic network, or a combination of wireless andnon-wireless systems. Clients 110 and context server 100 maycommunicate, in part or in whole, via wireless or hardwiredcommunications, such as Ethernet, IEEE 802.11b wireless, or the like.Additionally, communication between clients 110 and context server 100may include (or access) various servers such as a media server, mapserver, mail server, mobile server, and the like. Client 110 for usewith context server 100 may include a typical web browser application, awireless application protocol (WAP) feature, or other data communicationprotocol associate with the device of client 110 suitable to communicatewith context server 100.

In this example, context server 100 includes interface logic 102 forreceiving context information, media objects, user input, and the like.To that end, media server 100 may utilize various wireless or Web datainterface techniques such as Common Gateway Interface (CGI) protocol andassociated applications (or “scripts”), Java® “servlets”, i.e., Java®applications running on a wireless server, Web server, or the like topresent information and receive input from clients 110. Context server100, although described herein in the singular, may actually compriseplural computers, devices, backends, and the like, communicating (wiredand/or wireless) and cooperating to perform some or all of the functionsdescribed herein. Additionally, context server 100 may be implemented invarious fashions and include various hardware, software, or firmware tocarry out the examples described herein.

Association logic 108 generally operates to associate information (e.g.,service information, services, maps, advertisements, games,entertainment, travel logs, and so on) with information received from aclient 110. For example, information may be associated with contextinformation, user-generated information, media objects, or combinationsthereof. Context server 100 may thereafter transfer (or initiate/directthe transfer of, e.g., via advertisement server 122) information to oneor more clients 110 (which may or may not include the particular client110 associated with the information received by context server 100).

Alternatively or additionally, context server 100 provides access of thereceived information or associated information to a third party serviceprovide or server system, e.g., a photograph storage server system,mobile phone service provider, advertisement server, and so on, whichmay in turn communicate associated information with one or more clients110 or provide one or more clients 110 access to such information.

Context server 100 may further include various other components known inthe art, e.g., a scripting engine (such as a PHP scripting engine), anaggregation engine, and the like. A scripting engine may includeauthentication logic, upload logic, metadata processing logic, andpermissions handling logic. The authentication logic authenticates auser signing on to the context server. The upload logic may be used orincluded with interface logic 102 to upload from a client to contextserver 100 data conforming to any media format, e.g., still image (e.g.,JPEG, TIFF), video (e.g., MPEG, AVI), or audio (e.g., MP3, OGG). Theaggregation engine may include a statistics engine and a search engine.

Metadata processing logic permits a user to enter user-generatedmetadata, for example, to describe a media object (as used herein,“metadata” may refer to one metadatum or plural metadata). Metadata maytake the form of one or more tags for a media object. Other types ofmetadata include, e.g., a title, a description of the image,annotations, and comments. Additionally, metadata associated with adevice (e.g., device-generated metadata) such as metadata from a digitalcamera that captured a digital photograph, including metadata regardingtime of capture, aperture, shutter speed, and other settings. Suchmetadata may be extracted, for example, from the EXIF (ExchangeableImage File) header stored inside the uploaded file by many digitalcameras, or the IPTC (International Press Telecommunications Council)header stored inside the uploaded file by many photograph management andorganization software packages.

Additionally, metadata may include geographical reference dataassociated with the media object. For example, the device may generate ageographical location (e.g., from a GPS location device, cellidentification, or other location technologies). Additionally oralternatively, a user may enter or edit geographical location associatedwith a particular media object (either at the time of capture or later).

For the sake of convenience, at times, digital photographs or stillimages captured by digital cameras are used and described as examples ofmedia objects manipulated by the exemplary system; however, thoseskilled in the art will recognize that the various examples applysimilarly or equally to other media objects, subject to appropriatemodifications and use of other functions where appropriate (e.g.,viewing a media object may apply to viewing a still or moving image,listening to an audio media object, such as a soundtrack, orcombinations thereof).

FIG. 2 illustrates an exemplary context server 200 in communication witha client device 205 and various exemplary components, which may beincluded locally with context server 200 or located remotely to contextserver 200. Additionally, FIGS. 3A and 3B illustrate exemplary flows ofinformation between context server 200 and user device 205 according totwo examples, and which may be referenced in combination with FIG. 2.

In one illustrative example, a user 227 operates a user device 205,e.g., a digital camera equipped mobile phone device. Device 205generates a media object such as a digital photograph, which istransmitted to context-based service 220 d as data 228 and contextinformation 229. Context information 229 may include device-generated oruser-generated metadata including information such as an identity ofuser 227 (or device 205), type or identification of device 205, locationof capture, time of capture, location of the subject of the photo,direction of the camera, identification of other users nearby (e.g., viaBluetooth IDs), or combinations thereof. In other examples, data 228 mayinclude user-generated information (e.g., metadata tags, subjectivecharacterizations, etc.,) associated with a media object and/or contextinformation 229.

In this example, context-based service 220 d communicates contextinformation 229 to context server 200, which may store contextinformation in context database 206. Association logic of context server200 may associate information with data 228 and/or context 229 based, atleast in part, on context information 229. In other examples, data 228and context 229 may be communicated directly to context server 200 (see,e.g., FIG. 3A), which may transmit a portion or all of such data tocontext-based service 220 d, and further, may query a contextinterpreter 207 a before or after transmitting information to contextbased service 220 d. In yet other examples, data 228 and context 229 maybe sent to different components; for example, data 228 transmitted tocontext based service 220 a or context server 200 and context 229transmitted to a context interpreter 207 a-d.

Context-based service 220 d may further communicate with context server200, querying it for “real world” information (e.g., street address,city, etc.) of user 227 and/or device 205. In one example, contextserver 200 communicates context information 229 (or informationassociated with context information 229) to a context interpreter 207 a;for example, communicating raw location information such as mobile cellID, GPS information, or wireless access point location, and queriescontext interpreter 207 a for city and street information. Contextinterpreter 207 a may further utilize other information found in anassociated or remote server 211 a and its accompanying database 214 a todetermine street and city information that has been requested, andoperate to return such information to context interpreter 207 a.Additionally or alternatively, context information 229 may include andrelate to the date, time of day, ambient conditions, biometricinformation related to the user, user/device ID, information related toa Personal Management Information (PIM) application or service, orcombinations thereof, which may be determined or modified by contextinterpreter 207 a. The information processed by context interpreter 207a is in turn communicated to context server 200, and may be used by theoriginal requester, context-based service 220 d. It is noted that inother examples, user device 205 may be capable of providing morecomplete context information 229, which does not require the use of acontext interpreter 207 a, or alternatively, context-based service 220 dmay include or access a context interpreter directly.

With information obtained from context server 200, context based-service220 d may upload data 228 to one or more information services 221 a-c(for example, a photo storage service such as Yahoo!® Photos, Flickr®,or other photo storage service; a map service such as Yahoo!® Maps orthe like; and so on), along with context information (e.g., locationinformation) or other information associated with the data 228 andcontext information 229. The data may be stored in database 224 a-c.Additionally, information may be communicated back to user device 205(or one or more users other than user device 206 and user 227) viacontext server 200, context-based service 220 a-d, or other serviceinformation service 221 a-c.

In the example illustrated by FIG. 2, various components, e.g.,context-based services 220 a-d and context interpreters 207 a-d, areillustrated as remote components (or external processes) to contextserver 200, and which may communicate via one or more ApplicationProgram Interfaces (API), such as APIs 202-204, as needed. Accordingly,the various devices or components may operate generally independently ofeach other and communicate in any fashion. In other examples, contextserver 200 may incorporate one or more of the components directly in itsfunctionality and architecture; for example, within a common serversystem or backend (grouping of servers to support the describedfunctions). For example, a context server may function without using aremote context interpreter or other information service, and operategenerally as illustrated by FIG. 3B (where context server 200 includeslogic for associating information or services from database 207 withclient/device 205 based on the received context and/or data). A contextserver may further include logic for transferring associated data (aswell as data 228 and context 229) to other information servers 221 a-cfor storage with associated databases 224 a-c. A user 227 may thenaccess the associated information or service via user device 205 or adifferent device. Additionally, context server 200 may transfer theassociated information to user device 205 or another device directly.

Additionally, context server 200 is illustrated in this example as asingle device for illustrative purposes; in other examples, variouscontext servers are possible, wherein individual context servers areused for individual context-based services (e.g., a context server 220a-d per context-based service, e.g., relating to photos, advertisements,maps, travel guides, searches, games, and so on as will be described ingreater detail below).

FIGS. 3A and 3B illustrate and contrast exemplary flows of informationbetween two exemplary context servers 200 a, 200 b and client/device 205according to two examples. FIG. 3A illustrates the flow of data betweencontext server 200 a, context interpreter 207, context-based service220, and information server 221, all of which may be included asseparate server systems in communication or within a common associatedserver system.

The flow of information is generally as described with respect to FIG.2. For example, data and context information are received by contextserver 200. In one example, the context information may be interpretedby interpreter 207 and the interpreted context and data communicated tothe context based service 220. The data and context may be transferredto an information server 221 and thereafter transferred or accessible toone or more users or user devices including, for example, client/device205. For example, information server 221 may include a photo storageserver, which is accessed by a user via client/device 205 or a differentdevice.

In contrast, FIG. 3B illustrates the flow of data between client/device205 and context server 200 b, where context server 200 b includes logicto carry out functions similar or identical to context interpreter 207,context-based service 220, and information server 221 of FIG. 3A oroperates without such functions. Context server 200 b may includeinterface logic for receiving data and context and association logic forassociating information (e.g., from database 206) with a portion of thedata based on the context. In both examples context server 200 a and 200b may include interface logic for receiving context information as wellas association logic for associating information based on the contextinformation.

FIG. 4 illustrates information flow between a context server 400 and aclient/user device 410 according to another example. In this example,context server 400 includes interface logic for receiving contextinformation and user-generated information from a client/user device 410and association logic for associating information with the user and/oruser-generated information based on the context. In this example,client/user device 410 communicates context information 450 and data 451(including user-generated information) to context server 400. Thecontext information and user-generated information may be communicatedto and received by context server 400 during a common session (e.g.,during a media object capture, upload session, data transfer session, orthe like). In other examples, the context information and user-generatedinformation may be communicated within different session or at differenttimes. Additionally, the context information and user-generatedinformation may flow through other systems or servers prior to receiptby context server 400, such as mobile servers, service providers, andthe like.

In one example, the user-generated information includes user-generatedsubjective characterization information. For example, the user-generatedinformation may include a subjective characterization or ratingregarding or interpreting the context (e.g., “this is great,” “lousyweather,” “beautiful day,” or a ranking or scaled score of the context,i.e., between 1 and 10, and the like). The user-generated subjectivecharacterization may be input to the user device via text or voice, andmay include, e.g., selecting or ranking on a scale of 1-10 a subjectivemeasure of the user's environment or state. In one example, theuser-generated information or user-generated subjective characterizationinformation may also be associated with a media object which may also bereceived by context server 400.

The context information 450 may include one or more of biometricinformation, time, location, ambient conditions, device or user ID,device type, user profile information, Personal Management Information(PIM) service information, and the like. Further, the contextinformation may be transmitted to the context server throughclient/device 410 or from another device. For example, a cell ID mightbe determined by a wireless server and transmitted to context server 400such that the context is not generated directly from the user device(nor is the context information communicated from the client/device 410)

Association logic of context server 400 operates to associateinformation or a service with the context information and user-generatedinformation from database 406 as indicated by arrows 452 and 454. Inparticular, a portion or all of data received (e.g., context information450 and data 451) may be used to associate information, and retrieve theassociated information from database 406 via 452 and 454. Database 406,and associated information 456, may be stored locally or remotely tocontext server 410 and communicated to or accessibly by client/device410 from context server 400 (as shown) or from a remote source.Additionally or alternatively, the service information may becommunicated to one or more server systems or client devices other thanthe client device related to the context and user-generated informationcommunicated via context 450 and data 451.

Context server 400 may further include or communicate with various othercomponents (e.g., an interpreter, context-based service, database,advertisement server) and may communicate context information anduser-generated information with remote components; further, the serviceinformation or services may be communicated to client/device 410 via aremote, third-party source.

FIG. 5 illustrates an exemplary information flow between a contextserver 500 and client/device 510, the context server 500 including logicfor associating information with a media object based, at least in part,on context information. In one example, client/user device 510communicates context information 550, a media object 551, anduser-generated information 552. For example, a user takes a picture withclient/user device 510 and adds a tag such as a title associated withthe picture (i.e., adds user-generated information 552). Client/userdevice 510 may automatically generate context information 550 forinclusion with the metadata of the picture (e.g., with an EXIF header).The context information 550, media object 551, and user generatedinformation 552 may be transferred to context server 500 (or transferredto a service such as Flicker®, which may include functionality similarto context server 510 or communicate at least a portion of theinformation to context server 510).

The context information 550, media object 551, and user-generatedinformation 552 may be communicated to context server 500 during acommon session (e.g., during a media object capture, an upload session,a data transfer session, or the like). In other examples, one or more ofthe context information, media object, and user-generated informationmay be communicated within different session or at different times.Additionally, one or more of the context information, media object, oruser-generated information may flow through other systems or serversprior to receipt by context server 500.

The user-generated information may include information related to themedia object. For example, user-generated information may include anyinformation that is not device generated automatically (such as EXIFdata, for example), and may include various subjective or objectiveinformation such as user entered tags, including comments, titles, andso on associated with the media object. The user-generated informationmay be input to the user device via text or voice, in response to devicegenerated queries (e.g., the device may suggest a descriptive tag ortitle), or the like.

As previously described, the context information may include varioustypes of context information such as biometric information, time,location, ambient conditions, device or user ID, device type, userprofile information, and the like. Further, the context information maybe transmitted to context server 500 from the client/device 510 or fromanother device.

Association logic included with context server 500 operates to associateservice information or a service from database 506 as indicated byarrows 554 and 556. In particular, a portion or all of data received via550, 551, and 552 by context server 500 may be used to associateinformation or services, and retrieve such information or services fromdatabase 506 via 554 and 556. The association may be based on one ormore of the context information, user-generated information, or a mediaobject. Database 506 and associated information or services may bestored locally or remotely to context server 510 and communicated toclient/device 510 at 558 from context server 500 (as shown) or from aremote source. Additionally or alternatively, the service informationmay be communicated to one or more server systems or client devicesother than the client device related to the context, media object, anduser generated information.

Similar to context server 400, context server 500 may include variousother components, e.g., as shown in FIG. 2; further, associatedinformation may be communicated to a client/device 510 via a remote,third-party source such as an advertisement server or other serviceprovider.

The association of information or services by association logicaccording to some of the examples described herein (for example,according to the examples of any of FIGS. 1-5) may include or relate tovarious information such as an advertisement (e.g., based on user inputor context alone), a physical address (e.g., converted from GPS or cellID information), a map, nearby locations (which may include goods,services, or persons), a map of nearby locations, and so on.Additionally, the association of information may relate to variousservices (based on, e.g., context information of one or more users) suchas identifying other users, leaving keyed messages or media objects forother users, travel or route planning based on input of other users, tagsuggestions, context based games (e.g., a scavenger hunt), and so on.

Additionally, information or service provided to a user via the contextserver may include information associated with input from or related toa plurality of users. For example, the context server or associatedcomponent or service may aggregate the context and/or input data frommultiple users and store the information remotely or locally. The inputform multiple users may be used to associate information and service asdescribed.

In one example, associated information may relate to context basedadvertisements for communication to one or more users, theadvertisements based, at least in part, on the context information. Inparticular, an advertisement may be communicated to a user device basedon the location of the user device, time of day, ambient conditions,biometric information, or combinations thereof. The advertisement mayrelate to a nearby business or attraction such as a restaurant, bar,museum, park, entertainment event, and so on. The advertisement mayfurther include coupons, discounts, and the like. In one example, thecontext server itself may include logic for communicating theadvertisement to one or more user devices, in other example, the contextserver may communicate received information or associated information toan advertisement server, which in turn may communicate an advertisementto one or more users.

In one example, the associated information may relate to a sponsoredsearch based on the context and user input. The user input may include,for example, a search query by the user (as well as user-generatedinformation or transferred media objects). A user may search for pointsof interest, restaurants, etc., from a user device, and the contextserver may associate information based on the input data (e.g., thesearch query terms) from the user device. The associated information mayinclude or be used to provide a relevant advertisement via a sponsoredsearch. Additionally, an associated advertisement may be associatedbased on the context and user-generated information or a media object ina similar fashion.

In one example, an associated information or service may relate toempirical information such as a map. A map, which may be retrieved froma map server or service provider, may be associated with the contextinformation of the user device. In one example, an associated map mayfurther include various points of interest, advertisements, and so onfor display therewith, the points of interest generated based oninformation received from a user device such as context information,user-generated information, or a media object.

In one example, the associated information or service may relate to atravel map that indicates where other users or tours traveled in asimilar location. For example, a travel map may be generated orassociated that displays locations other users visited when in Rome, amap of popular restaurants, and so on. A travel map may includeinformation from multiple users, e.g., such as context information anduser-generated information, and may further be filtered or biased by theparticular user receiving the travel map. A user may have associatedsocial contacts (friends, user groups etc.), a user profile, and thelike that may be used to generate the travel map. For example, insteadof displaying a map where most people visit, displaying a map wheresocial contacts visit, where active people visit, where wineconnoisseurs visit, where people from San Francisco visit, etc. Further,the maps may be generated from both user input data as well as non-userdata, e.g., from travel sites, travel guides, on-line forums, or thelike.

Additionally, a travel map may be dynamic and current, e.g., displayingwhere people currently are located. For example, a user may receive amap of local bars indicating which bars are crowded as determined bycontext information received from other users. Similarly, theinformation may be filtered based on social contacts, user profiles, andthe like such that a map is generated displaying local bars in which auser's social contacts are present. The data of where people are or havevisited may be generated from other user's using a common or similarcontext server, or may be derived from other sources such as third partysources.

Various other maps are possible, e.g., including maps related to nearbybanks, using travelers' checks, indicating businesses that speak auser's native language, historical events and places, current events,alerts regarding nearby landmarks, restaurants, events, warnings oftravel hotspots (e.g., travel advisories, such as civil or militaryunrest, high crime areas, disease outbreaks, natural disasters, severeweather, etc.), and so on.

In another example, the associated information or service may relate toproviding local intelligence to a user that is traveling or inunfamiliar surroundings. The context and/or user-generated data of auser may be used to determine that a user is traveling or outside of theuser's local experience. For example, a user profile may include aresidence address of San Francisco, Calif., and the context informationindicates the user is in Munich, Germany; alternatively, a user's PIMapplications/services including, e.g., a personal calendar, may indicatethey are traveling. From this, information or services may be associatedand available to the user relating, for example, to a local person,group, or location (e.g., a visitor booth) that may provide helpfulinformation or assistance to a user. In one example, local informationmay be leveraged from Internet resources, such as Yahoo! local™ orsimilar, to provide relevant information to the user. For example, ascontext information (e.g., spatial or geographical information) changes,the appropriate Yahoo! local™ resources (such as maps, phonebooks, etc)may be available via the user device.

Additionally, the associated information or service may relate to PIMapplications, and in one example, for updating or modifying PIMapplications or data based on the context. For example, an out of officemessage may be activated if the user is determined to be out of theoffice or traveling based on the context. Further, a user's calendar,contacts, or the like may be updated based on context (e.g., work versuspersonal information, city A versus city B information, weekday versusweekend information, and so on).

In another example, the associated information or service may relate toguide information (e.g., a travel guide or tour) to a user whiletraveling. In one example, a user may be provided with a suggestionbased, at least in part, on context information. Additionally, based onthe context and other information received or available to the contextserver (e.g., user-input information, profile information, or the like),travel guides or tours may be generated. A generated tour may be basedon current location, available time, transportationpreferences/requirements, travel patterns of other related or unrelatedtravelers, and the like. Further, tours or suggestions may adapt to auser based on a user's mood (e.g., “I want something exciting” or “Iwant to relax”), or a user's mode (e.g., whether the user is travelingon business, family vacation, singles vacation, etc.). Additionally, theassociated information or services may include an audio or video tour ofa location, e.g., a city, park, museum, and the like.

In another example, the associated information or service may relate toinformation for acclimating a user to a foreign location. For example, auser device may be updated or loaded with information or services basedon context, e.g., where the user device is located, the local time,customs, an associated calendar, and the like. In one example, atranslation device or language primer based on the locale or futuretravel plans (which may retrieved from a calendar application, forexample) may be provided or accessible to the user device. Thetranslation device may include, for example, multilingual text-to-speechapplications, as well as the use of media objects as translation guides.For example, the user device may display images (still or moving) oraudio as guides, e.g., to navigate places, distinguish signs, locatefood, and the like.

In one example, the associated information or service relates tosuggested tags (subjective or objective) or media objects, the suggestedtags or media objects based on context. The associated information mayinclude tags or media objects from other users or sources of informationand associated with a particular location or time. For example, if auser is determined to be at the Grand Canyon at 8 pm, the associatedinformation might include a tag “Grand Canyon sunset.” The suggested tagmay be applied to a media object captured by the user. In anotherexample, the user might be supplied with a photograph or audio/videotour of the Grand Canyon in response to the context information.Additionally, locations that are tagged frequently by users (orassociated with frequent media object creation) may be indicated on amap as possible places of interest (as indicated by the number of tagsor media objects associated therewith). Such a map may further befiltered based on social contacts, user profiles, context (e.g., for thetime of day, time of year), and the like.

In another example, the associated information or service may relate tosuggesting information or media objects associated with context. Inparticular, a context server may associate sample or suggested mediaobjects based on a user's context (e.g., the location and time of auser) as well as other user-generated information. For example, a useron a trip may receive one or more photographs from other users orsources taken at the same or similar locations and similar or same time(e.g., both time of the year and time of the day). A user may fill holesin their photograph collection or use photographs determined to besuperior than their own photographs.

In another aspect, associated information or service may relate to gamesand entertainment. In one example, the associated information or servicemay relate to a scavenger hunt (or similar) game. For example, a usermay be supplied with a textual listing of a location (or a riddle thatleads to said location), and asked to find the location. The userarriving at the desired location may be verified by context receivedfrom the user or user device (registered automatically or manually), ormay require the user to capture a photograph (or other media object)associated with the location.

In another example, the associated information or service may be used aspart of a reverse scavenger hunt game, wherein a user is supplied with amedia object (e.g., a photograph) associated with a particular subjector location and asked to find the subject or location. Additionally,exemplary games such as a scavenger hunt or reverse scavenger hunt maybe combined with marketing or advertising services. For example, asponsored game to lead a user to particular store, restaurant, or otherlocation, where the user may receive a prize or discount when theyarrive.

In another example, the associated information or service relate tokeyed messages or media objects. For example, a user may leave locationand/or time keyed messages or media objects for other users to find(i.e., the message or media object is triggered by a portion of thecontext data). A keyed message or media object may be left for travelersand include various information such as tour guides, good spots fortaking pictures, personal messages, public messages, and the like. Whenanother user is in a location while traveling (restaurant, museum,monument, and so on) they can leave a text message or media object thatwill be available to other users that arrive (and our detected by thecontext server) at the location in the future.

In one example, keyed notes may have a brand sponsorship. For example, alocation may be sponsored as a “Photo-Company A” picture spot, whereinformation (e.g., an advertisement) associate with “Photo-Company A” iscommunicated to a user when the user is determined to be at theparticular location. Additionally, the context server may guide a userto a particular location to take a good picture. For example, the usermay be informed that there is a “Perfect picture spot” of an object 100meters to the East of the current position. The picture spot may bechosen by many means, including as judged by expert photographers, howmany other users have taken pictures from a given spot, arbitrarilychosen, and the like.

While the invention has been described in terms of particularembodiments and illustrative figures, those of ordinary skill in the artwill recognize that the invention is not limited to the embodiments orfigures described. Those skilled in the art will recognize that theoperations of the various embodiments may be implemented using hardware,software, firmware, or combinations thereof, as appropriate. Forexample, some processes can be carried out using processors or otherdigital circuitry under the control of software, firmware, or hard-wiredlogic. (The term “logic” herein refers to fixed hardware, programmablelogic, and/or an appropriate combination thereof, as would be recognizedby one skilled in the art to carry out the recited functions.) Softwareand firmware can be stored on computer-readable media. Some otherprocesses can be implemented using analog circuitry, as is well known toone of ordinary skill in the art. Additionally, memory or other storage,as well as communication components, may be employed in embodiments ofthe invention.

FIG. 6 illustrates an exemplary computing system 600 that may beemployed to implement processing functionality for various aspects ofthe invention (e.g., as a client device or a server device). Thoseskilled in the relevant art will also recognize how to implement theinvention using other computer systems or architectures. Computingsystem 600 may represent, for example, a desktop, laptop or notebookcomputer, hand-held computing device (PDA, cell phone, palmtop, etc.),mainframe, server, client, or any other type of special or generalpurpose computing device as may be desirable or appropriate for a givenapplication or environment. Computing system 600 can include one or moreprocessors, such as a processor 604. Processor 604 can be implementedusing a general or special purpose processing engine such as, forexample, a microprocessor, microcontroller or other control logic. Inthis example, processor 604 is connected to a bus 602 or othercommunication medium.

Computing system 600 can also include a main memory 608, preferablyrandom access memory (RAM) or other dynamic memory, for storinginformation and instructions to be executed by processor 604. Mainmemory 608 also may be used for storing temporary variables or otherintermediate information during execution of instructions to be executedby processor 604. Computing system 600 may likewise include a read onlymemory (“ROM”) or other static storage device coupled to bus 602 forstoring static information and instructions for processor 604.

The computing system 600 may also include information storage mechanism610, which may include, for example, a media drive 612 and a removablestorage interface 620. The media drive 612 may include a drive or othermechanism to support fixed or removable storage media, such as a harddisk drive, a floppy disk drive, a magnetic tape drive, an optical diskdrive, a CD or DVD drive (R or RW), or other removable or fixed mediadrive. Storage media 618 may include, for example, a hard disk, floppydisk, magnetic tape, optical disk, CD or DVD, or other fixed orremovable medium that is read by and written to by media drive 614. Asthese examples illustrate, the storage media 618 may include acomputer-readable storage medium having stored therein particularcomputer software or data.

In alternative embodiments, information storage mechanism 610 mayinclude other similar instrumentalities for allowing computer programsor other instructions or data to be loaded into computing system 600.Such instrumentalities may include, for example, a removable storageunit 622 and an interface 620, such as a program cartridge and cartridgeinterface, a removable memory (for example, a flash memory or otherremovable memory module) and memory slot, and other removable storageunits 622 and interfaces 620 that allow software and data to betransferred from the removable storage unit 618 to computing system 600.

Computing system 600 can also include a communications interface 624.Communications interface 624 can be used to allow software and data tobe transferred between computing system 600 and external devices.Examples of communications interface 624 can include a modem, a networkinterface (such as an Ethernet or other NIC card), a communications port(such as for example, a USB port), a PCMCIA slot and card, etc. Softwareand data transferred via communications interface 624 are in the form ofsignals which can be electronic, electromagnetic, optical, or othersignals capable of being received by communications interface 624. Thesesignals are provided to communications interface 624 via a channel 628.This channel 628 may carry signals and may be implemented using awireless medium, wire or cable, fiber optics, or other communicationsmedium. Some examples of a channel include a phone line, a cellularphone link, an RF link, a network interface, a local or wide areanetwork, and other communications channels.

In this document, the terms “computer program product” and“computer-readable medium” may be used generally to refer to media suchas, for example, memory 608, storage device 618, storage unit 622, orsignal(s) on channel 628. These and other forms of computer-readablemedia may be involved in providing one or more sequences of one or moreinstructions to processor 604 for execution. Such instructions,generally referred to as “computer program code” (which may be groupedin the form of computer programs or other groupings), when executed,enable the computing system 600 to perform features or functions ofembodiments of the present invention.

In an embodiment where the elements are implemented using software, thesoftware may be stored in a computer-readable medium and loaded intocomputing system 600 using, for example, removable storage drive 614,drive 612 or communications interface 624. The control logic (in thisexample, software instructions or computer program code), when executedby the processor 604, causes the processor 604 to perform the functionsof the invention as described herein.

It will be appreciated that, for clarity purposes, the above descriptionhas described embodiments of the invention with reference to differentfunctional units and processors. However, it will be apparent that anysuitable distribution of functionality between different functionalunits, processors or domains may be used without detracting from theinvention. For example, functionality illustrated to be performed byseparate processors or controllers may be performed by the sameprocessor or controller. Hence, references to specific functional unitsare only to be seen as references to suitable means for providing thedescribed functionality, rather than indicative of a strict logical orphysical structure or organization.

Although the present invention has been described in connection withsome embodiments, it is not intended to be limited to the specific formset forth herein. Rather, the scope of the present invention is limitedonly by the claims. Additionally, although a feature may appear to bedescribed in connection with particular embodiments, one skilled in theart would recognize that various features of the described embodimentsmay be combined in accordance with the invention.

Furthermore, although individually listed, a plurality of means,elements or method steps may be implemented by, for example, a singleunit or processor. Additionally, although individual features may beincluded in different claims, these may possibly be advantageouslycombined, and the inclusion in different claims does not imply that acombination of features is not feasible and/or advantageous. Also, theinclusion of a feature in one category of claims does not imply alimitation to this category, but rather the feature may be equallyapplicable to other claim categories, as appropriate.

Although the present invention has been described in connection withsome embodiments, it is not intended to be limited to the specific formset forth herein. Rather, the scope of the present invention is limitedonly by the claims. Additionally, although a feature may appear to bedescribed in connection with a particular embodiment, one skilled in theart would recognize that various features of the described embodimentsmay be combined in accordance with the invention. Moreover, aspects ofthe invention describe in connection with an embodiment may stand aloneas an invention.

Moreover, it will be appreciated that various modifications andalterations may be made by those skilled in the art without departingfrom the spirit and scope of the invention. The invention is not to belimited by the foregoing illustrative details, but is to be definedaccording to the claims.

1. An apparatus for associating information based upon context, theapparatus comprising: interface logic for receiving, during a session:context information from a user device, and user-generated subjectivecharacterization information associated with the context information;and association logic for associating service information, differentfrom the context information, with the user-generated subjectivecharacterization information based on the context information.
 2. Theapparatus of claim 1, wherein the associated service informationcomprises empirical information.
 3. The apparatus of claim 1, whereinthe context information from the user device originates at a deviceother than the user device.
 4. The apparatus of claim 1, wherein thecontext information comprises biometric information associated with theuser.
 5. The apparatus of claim 1, further comprising service logic forproviding the associated service information to at least one user basedon the association of service information with the user-generatedsubjective characterization information or the context.
 6. The apparatusof claim 5, wherein the at least one user comprises a second user otherthan a first user who created the user-generated subjectivecharacterization information.
 7. The apparatus of claim 6, furthercomprising permissions logic for enabling the first user to grant thesecond user access to the service information.
 8. The apparatus of claim5, wherein the service information is based on a plurality of inputsfrom multiple user devices.
 9. The apparatus of claim 8, wherein theassociation logic is operable to associate the service information withuser-generated subjective characterization information and contextinformation from a plurality of user devices.
 10. The apparatus of claim8, wherein the inputs comprise context information.
 11. The apparatus ofclaim 8, wherein the inputs comprise user-generated subjectivecharacterization information.
 12. The apparatus of claim 5, wherein theservice information relates to a scavenger hunt.
 13. The apparatus ofclaim 5, wherein the service information relates to a scavenger hunt,the apparatus further comprising logic for providing a user device witha media object and requesting that the user find a location associatedwith the media object.
 14. The apparatus of claim 5, wherein the serviceinformation relates to a travel log, the travel log comprising a mapoverlaid with at least one media object associated with the user. 15.The apparatus of claim 5, wherein the service information comprises atravel guide.
 16. The apparatus of claim 15, the apparatus furthercomprising logic for providing a user device with a suggestion inresponse to user input and the context information.
 17. The apparatus ofclaim 15, the apparatus further comprising logic for providing a userdevice with a tour.
 18. The apparatus of claim 5, the apparatus furthercomprising logic for initiating a transfer of a context-based message toa user device in response to the context information.
 19. The apparatusof claim 18, wherein the logic for initiating the transfer is operableto transfer the context-based message in response to a location of theuser.
 20. The apparatus of claim 5, the service information relating toan advertisement, the advertisement based on the context information.21. The apparatus of claim 5, the service information relating to asponsored search, the apparatus further comprising logic for initiatingtransfer to a user device of an advertisement based on the contextinformation and a user search query received from the user device. 22.The apparatus of claim 5, further comprising logic for generating anaway message based on the context information.
 23. The apparatus ofclaim 5, further comprising logic for providing information to a userbased on context information and user profile information.
 24. Theapparatus of claim 5, further comprising logic for providing to a userdevice at least one user-created subjective characterization based onthe context information.
 25. An method for associating information basedupon context, the method comprising: receiving context informationrelating to a user device; receiving user-generated subjectivecharacterization information associated with the context information,wherein the context information and user-generated subjectivecharacterization information are received during a common session withthe user device; and associating service information, different from thecontext information, with the user-generated subjective characterizationinformation based on the context information
 26. The method of claim 25,wherein the associated service information comprises empiricalinformation.
 27. The method of claim 25, wherein the context informationfrom the user device originates at a device other than the user device.28. The method of claim 25, wherein the context information comprisesbiometric information associated with the user.
 29. The method of claim25, further comprising directing the associated service information toat least one user based on the association of service information withthe user-generated subjective characterization information or thecontext.
 30. The method of claim 29, wherein the at least one usercomprises a second user other than a first user who created theuser-generated subjective characterization information.
 31. The methodof claim 29, wherein the service information is based on a plurality ofinputs from multiple user devices.
 32. The method of claim 31, whereinthe inputs comprise context information.
 33. The method of claim 31,wherein the inputs comprise user-generated subjective characterizationinformation.
 34. The method of claim 29, wherein the service informationrelates to a scavenger hunt.
 35. The method of claim 29, wherein theservice information relates to a scavenger hunt, the method furthercomprising providing a user device with a media object and requestingthat the user find a location associated with the media object.
 36. Themethod of claim 29, wherein the service information relates to a travellog, the travel log comprising a map overlaid with at least one mediaobject associated with the user.
 37. The method of claim 29, wherein theservice information comprises a travel guide.
 38. The method of claim37, further comprising providing a user device with a suggestion inresponse to user input and the context information.
 39. The method ofclaim 37, further comprising providing a user device with a tour. 40.The method of claim 29, further comprising initiating a transfer of acontext-based message to a user device in response to the contextinformation.
 41. The method of claim 40, wherein initiating the transferis in response to a location of the user.
 42. The method of claim 29,wherein the service information relates to an advertisement, theadvertisement based on the context information.
 43. The method of claim29, wherein the service information relates to a sponsored search, themethod further comprising initiating a transfer to a user device of anadvertisement based on the context information and a user search queryreceived from the user device.
 44. The method of claim 29, furthercomprising generating an away message based on the context information.45. The method of claim 29, further comprising providing information toa user based on context information and user profile information. 46.The method of claim 29, further comprising providing to a user device atleast one user-created subjective characterization based on the contextinformation.
 47. A computer-readable medium encoded with computerprogram instructions for performing a process, the process comprising:receiving, during a common session: context information from a userdevice, and user-generated subjective characterization informationassociated with the context information; and associating serviceinformation, different from the context information, with theuser-generated subjective characterization information based on thecontext information.
 48. The computer-readable medium of claim 47,wherein the associated service information comprises empiricalinformation.
 49. The computer-readable medium of claim 47, wherein thecontext information from the user device originates at a device otherthan the user device.
 50. The computer-readable medium of claim 47,wherein the context information comprises biometric informationassociated with the user.
 51. The computer-readable medium of claim 50,the process further comprising directing the associated serviceinformation to at least one user based on the association of serviceinformation with the user-generated subjective characterizationinformation or the context.
 52. The computer-readable medium of claim47, wherein the at least one user comprises a second user other than afirst user who created the user-generated subjective characterizationinformation.
 53. The computer-readable medium of claim 47, wherein theservice information is based on a plurality of inputs from multiple userdevices.
 54. The computer-readable medium of claim 53, wherein theinputs comprise context information.
 55. The computer-readable medium ofclaim 53, wherein the inputs comprise user-generated subjectivecharacterization information.
 56. The computer-readable medium of claim47, wherein the service information relates to a scavenger hunt.
 57. Thecomputer-readable medium of claim 56, wherein the service informationrelates to a scavenger hunt, the process further comprising providing auser device with a media object and requesting that the user find alocation associated with the media object.
 58. The computer-readablemedium of claim 56, wherein the service information relates to a travellog, the travel log comprising a map overlaid with at least one mediaobject associated with the user.
 59. The computer-readable medium ofclaim 56, wherein the service information comprises a travel guide. 60.The computer-readable medium of claim 59, the process further comprisingproviding a user device with a suggestion in response to user input andthe context information.
 61. The computer-readable medium of claim 59,the process further comprising providing a user device with a tour. 62.The computer-readable medium of claim 56, the process further comprisinginitiating a transfer of a context-based message to a user device inresponse to the context information.
 63. The computer-readable medium ofclaim 62, wherein initiating the transfer is in response to a locationof the user.
 64. The computer-readable medium of claim 56, wherein theservice information relates to an advertisement, the advertisement basedon the context information.
 65. The computer-readable medium of claim56, wherein the service information relates to a sponsored search, theprocess further comprising initiating transfer to a user device of anadvertisement based on the context information and a user search queryreceived from the user device.
 66. The computer-readable medium of claim56, the process further comprising generating an away message based onthe context information.
 67. The computer-readable medium of claim 56,the process further comprising providing information to a user based oncontext information and user profile information.
 68. Thecomputer-readable medium of claim 56, the process further comprisingproviding to a user device at least one user-created subjectivecharacterization based on the context information.